<?php

namespace App\Services;

use App\Components\DXKey;
use App\Models\AppTypeModel;

class AppTypeService extends BaseService
{
    /**
     * @var static 单例模式
     */
    protected static $instance;

    /* @var \Illuminate\Database\Eloquent\Collection|AppTypeModel[] */
    protected $configMap = [];

    public function __construct()
    {
        // $this->_init();
    }

    protected function _init()
    {
//        $list = AppTypeModel::query()->where('id',)->get();
//
//        if ($list->isEmpty()) {
//            throw new CommonErrorException('', '未配置支付宝小程序');
//        }
//
//        $this->configMap = $list->keyBy('app_id');
    }

    /**
     * 通过 appid 获取配置
     * @param $miniId
     * @return AppTypeModel|array
     * @author Chris Yu <chrisyu@crabapple.top> 2024/12/18
     */
    public function getConfigByAppId($miniId)
    {
//        $config = $this->configMap->get($appid);
        $config = AppTypeModel::findById($miniId);
        if ($config) {
            return $config;
        }
        return [];
    }

    /**
     * @param $miniId
     * @return array
     */
    public static function getByMiniId($miniId): array
    {
        return RedisService::getAndExpire(DXKey::getKeyOfAppConfig($miniId), function () use ($miniId) {

            $appConfig = AppTypeModel::findById($miniId);
            if (empty($appConfig)) {
                return [];
            }
            return obToArray($appConfig);

        }, 7200);
    }
}
